package com.sumainfor.pc.gmio.feign.Zfeign;

import com.sumainfor.common.util.JsonResult;
import com.sumainfor.common.utlis.Pager;
import com.sumainfor.pc.gmio.fallback.ZfallBack.ZpcMarketFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * 调用市场部服务
 */
@FeignClient(name = "tANGNEST-PC-MARKEt", fallback = ZpcMarketFallback.class)
public interface ZpcMktFeign {

    /**
     * 运营部水电燃录入的时候去工程部查询已签约的房源信息
     */
    @PostMapping("/rentadviser/RdHousingInfoController/key/getHouInfoListForEwg")
    JsonResult getHouInfoListForEwg(@RequestBody Map<String, Object> params);

    /**
     * 运营部录入水电燃费时查询已经签约房源的信息
     *
     * @param params
     * @return
     */
    @PostMapping("/rentadviser/RdHousingInfoController/key/getHouInfoListForGmio")
    JsonResult getHouInfoListForGmio(@RequestBody Map<String, Object> params);

    @PostMapping("/rentadviser/RdHousingInfoController/key/getHouInfoListForGmioTcmkt")
    JsonResult getHouInfoListForGmioTcmkt(@RequestBody Map<String, Object> params);

    /**
     * 查询所有的房源名称（用于下拉框筛选）
     *
     * @param
     * @return
     */
    @GetMapping("/key/CommunityZfeign/getCommunityName")
    JsonResult getCommunityName();

    /**
     * 服务秘书查询账单管理
     */
    @PostMapping("/rentadviser/RdHousingInfoController/key/getHouInfoListForBillParticular")
    JsonResult getHouInfoListForBillParticular(@RequestBody Map<String, Object> params);

    /**
     * 运营部租后主管退租账单列表去市场部查询房间信息
     */
    @ResponseBody
    @PostMapping("/rentadviser/RdHousingInfoController/key/getHouInfoListForDbill")
    JsonResult getHouInfoListForDbill(@RequestBody Map<String, Object> params);

    /**
     * 运营部租后足管投诉列表查询租客和服务管家的信息
     */
    @PostMapping("/rentadviser/RdTenantController/key/getTenSysUserInfoListForGmio")
    JsonResult getTenSysUserInfoListForGmio(@RequestBody Map<String, Object> params);
    /**
     * 运营租后主管查询账单审核列表
     */
    @PostMapping("/rentadviser/RdHousingInfoController/key/getHouInfoListForDi")
    JsonResult getHouInfoListForDi(@RequestBody Map<String, Object> params);

    /**
     * 运营部水电燃录入的时候去工程部查询已签约的房源信息
     */
    @PostMapping("/rentadviser/RdHousingInfoController/key/getHoulivecardList")
    JsonResult getHoulivecardList(@RequestBody Map<String, Object> params);

    /**
     * 服务管家查询强制退申请的退租对象的信息
     */
    @PostMapping("/rentadviser/RdTenantController/key/getTenantListByTenId")
    JsonResult getTenantListByTenId(@RequestBody Map<String, Object> params);
    /**
     * 服务管家查询强制退申请的退租对象的信息
     */
    @PostMapping("/rentadviser/RdPactController/key/getHoPactList")
    JsonResult getHoPactList(@RequestBody Map<String, Object> params);

    /**
     * 服务管家录入水电燃表数查询房源的信息列表
     */
    @PostMapping("/rentadviser/RdHousingController/key/getHoList")
    JsonResult getHoList(@RequestBody Map<String, Object> params);
    /**
     * 运营部服务秘书审核账单通过后修改合同信息 审核通过
     */
    @PostMapping("/rentadviser/RdPactController/key/updatePactForSe")
    JsonResult updatePactForSe(@RequestBody Map<String, Object> params);
    /**
     * 运营部服务秘书审核账单通过后修改合同信息 审核不通过
     */
    @PostMapping("/rentadviser/RdPactController/key/updatePactForSeNo")
    JsonResult updatePactForSeNo(@RequestBody Map<String, Object> params);
    /**
     * 运营部服务秘书审核账单通过后修改合同信息 审核不通过
     */
    @PostMapping("/rentadviser/RdHousingInfoController/key/getHouTemporaryList")
    JsonResult getHouTemporaryList(@RequestBody Map<String, Object> params);
    /**
     * 退租修改合同及房源信息
     */
    @ResponseBody
    @PostMapping("/rentadviser/RdPactController/key/updatePactRent")
    JsonResult updatePactRent(@RequestBody Map<String,Object> params);
    /**
     * 查询未审核黑名单
     */
    @PostMapping("/key/tcmktTenantBla/getBla")
    JsonResult getBla();

    /**
     * 运营部服务秘书审核账单通过后修改合同信息 审核不通过
     */
    @PostMapping("/rentadviser/RdPactController/key/getHouPactApplyList")
    JsonResult getHouPactApplyList(@RequestBody Map<String, Object> params);
    /**
     *退租的时候修改租客的智能设备信息
     */
    @PostMapping("/rentadviser/RdHouSmart/key/updateRdHouSmart")
    JsonResult updateRdHouSmart(@RequestBody Map<String, Object> params);
    /**
     *续租客端签合同的时候查询合同的信息
     */
    @GetMapping("/rentadviser/RdPactController/key/getRdRenPactInfo")
    JsonResult getRdRenPactInfo(@RequestParam Map<String, Object> params);

    /**
     *租客端续签合同时 房屋账单支付完成后修改合同信息
     */
    @PostMapping("/rentadviser/RdPactController/key/updatePactByRent")
    JsonResult updatePactByRent(@RequestBody Map<String, Object> params);
    /**
     * 功能描述:
     * 获取所有房源资料(字段可扩展)
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/5/5 16:22
     */
    @GetMapping("/key/allhou/getAllHousingList")
    JsonResult getAllHousingList();


    /**
     * 查询续租率
     * @param params
     * @return
     */
    @PostMapping("/key/TcmktPact/forRenewal")
    JsonResult forRenewal(@RequestBody Map<String,Object> params);
    /**
     * 租后主管退租验收查询项目的编号列表
     */
    @ResponseBody
    @PostMapping("/key/CommunityZfeign/getComIdList")
    JsonResult getComIdList(@RequestBody Map<String,Object> params);


    /**
     * 根据省市区街道楼号室号获取房源集合
     * @author zhoucong
     * @data 2019/9/10
     * @Param
     * @return
     */
    @ResponseBody
    @PostMapping("/key/CommunityZfeign/getHouInfoList")
    JsonResult getHouInfoList(@RequestBody Map<String,Object> params);




    /**
     * 运营助理发送钥匙
     */
    @ResponseBody
    @PostMapping("/rentadviser/RdHousingCon/key/getRdInteHouConInfoList")
    JsonResult getRdInteHouConInfoList(@RequestBody Map<String,Object> params);

    /**
     * 服务秘书审核账单时候查询合同的换房信息、转租信息
     */
    @PostMapping("/rentadviser/RdPactController/key/getRdPactTrade")
    public JsonResult getRdPactTrade(@RequestBody Map<String,Object>params);
    /**
     * 租后主管查询员工的信息列表（服务管家和服务秘书）
     */
    @GetMapping("/rentadviser/RdHousingController/key/getRdStaffList")
    public JsonResult getRdStaffList(@RequestParam Map<String,Object>params);
    /**
     *租后主管查询常规退或是违约退（查询房源的相关信息）
     */
    @PostMapping("/rentadviser/RdPactController/key/getRdRenewalTenInfoList")
    public JsonResult getRdRenewalTenInfoList(@RequestBody Map<String,Object>params);
    /**
     * 功能描述: 
     * 获取所有的租客资料
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/5/15 19:56
     */
    @ResponseBody
    @GetMapping("/key/gmiotenant/getTenantList")
    JsonResult getTenantList();

    /**
     * 功能描述:
     * 运营部根据退租账单编号获取房源物品清单
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/5/20 10:56
     */
    @ResponseBody
    @RequestMapping(value = "/key/allhou/getWithHouConInfoList")
    JsonResult getWithHouConInfoList(@RequestParam Map<String,Object>params);

    /**
    * <p>
    * 查询水电燃的收费标准
    * </p>
    *
    * @author: zhoucong
    * @since:
    */
    @ResponseBody
    @GetMapping("/key/tcpTemplate/getTpTemplate")
    JsonResult getTpTemplate(@RequestParam Map<String,Object> params);

    /**
    * <p>
    * 查询保洁房源
    * </p>
    *
    * @author: zhoucong
    * @since:
    */
    @ResponseBody
    @PostMapping("/key/cleaningHousing/getCleanHousingList")
    JsonResult getCleanHousingList(@RequestBody Map<String,Object> params);


    /**
    * <p>
    * 分配管家的数量
    * </p>
    *
    * @author: zhoucong
    * @since:
    */
    @ResponseBody
    @GetMapping("/key/AssignHousekeeper/getAssignHousekeeperCount")
    JsonResult getAssignHousekeeperCount();

    /**
    * <p>
    * 房源配置变化
    * </p>
    *
    * @author: zhoucong
    * @since:
    */
    @ResponseBody
    @GetMapping("/key/AssignHousekeeper/getHouConPactListCount")
    JsonResult getHouConPactListCount();

    /**
    * <p>
    * 训房异常回访
    * </p>
    *
    * @author: zhoucong
    * @since:
    */
    @ResponseBody
    @GetMapping("/key/AssignHousekeeper/getRoundsAbnormalCount")
     JsonResult getRoundsAbnormalCount();

    /**
    * <p>
    * 月续租和日续租
    * </p>
    *
    * @author: zhoucong
    * @since:
    */
    @ResponseBody
    @GetMapping("/key/AssignHousekeeper/getForRenewal")
    JsonResult getForRenewal();

    /**
     * 功能描述:
     * 根据合同编号获取合同资料
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/7/3 5:27
     */
    @GetMapping("/key/pact/getPactByPaIdMap")
    JsonResult getPactByPaIdMap(@RequestParam Map<String,Object>params);

    /**
     * 功能描述:
     * 根据租客编号和合同编号获取租客合同资料
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/7/11 21:00
     */
    @GetMapping("/key/pact/getPcatInfoByPaIdAndTenIdMap")
    Map<String,Object> getPcatInfoByPaIdAndTenIdMap(@RequestParam Map<String,Object>params);


    /**
     * 通过项目编号, 楼号, 室号, 查到所有的房源id数组
     **/
    @GetMapping("/housing/getHouseIdListByBuildAndRoom")
    List<String> getHouseIdListByBuildAndRoom(@RequestParam Map<String, Object> params);



    /////////////////////////////////
    //zc
    ////////////////////////////////

    /**
     * 根据项目编号，项目名称，房源编号获取训房列表
     * @author zhoucong
     * @data 2019/9/19
     * @Param
     * @return
     */
    @PostMapping("/provider/key/gmioSearch/getFugjTrainingList")
    List<Map<String,Object>> getFugjTrainingList(@RequestParam("search") String search);


    @PostMapping("/provider/key/gmioSearch/getTenByPhone")
    List<Map<String,Object>> getTenByPhone(@RequestParam("search") String search);

    @PostMapping("/provider/key/gmioSearch/getFumsHouInfoList")
    List<Map<String,Object>> getFumsHouInfoList(@RequestParam("search") String search);

    @PostMapping("/provider/key/gmioSearch/getZhzgHouIdList")
    List<Map<String,Object>> getZhzgHouIdList(@RequestParam("search") String search);

    @PostMapping("/provider/key/gmioSearch/YyzlOwnerList")
    List<Map<String,Object>> YyzlOwnerList(@RequestParam("search") String search);


    /**
     * 根据房源编号查询在租中的合同
     * @author zhoucong
     * @data 2019/10/29
     * @Param
     * @return
     */
    @GetMapping("/key/GmioTenantPact/getTenantPact")
    List<Map<String,Object>> getTenantPact(@RequestParam("HouId") String HouId);


    /**
     * 根据房源详表编号查询是否有智能电表
     * @param params
     * @return
     */
    @GetMapping("/key/PactGmio/getHouInfoPayment")
    JsonResult getHouInfoPayment(@RequestParam Map<String,Object> params);

    /**
     * 根据房源编号查询该房源下的房间编号
     * @param params
     * @return
     */
    @GetMapping("/key/PactGmio/getHouInfoNum")
    List<Map<String,Object>> getHouInfoNum(@RequestParam Map<String,Object> params);

    /**
     * 根据房源编号查询该房源下的在租合同
     * @param params
     * @return
     */
    @GetMapping("/key/PactGmio/getHouPact")
    List<Map<String,Object>> getHouPact(@RequestParam Map<String,Object> params);

    /**
     * 查询在租中 整租or合租 智能or非智能的房子
     * @param params
     * @param pager
     * @return
     */
    @PostMapping("/key/PactGmio/getPactNumHou")
     JsonResult getPactNumHou(@RequestBody Map<String,Object> params,@RequestParam("pager")Pager pager);

    /**
     * 秘书查询水电燃房源
     *
     */
    @PostMapping("/key/PactGmio/getHouId")
    JsonResult getHouId(@RequestBody Map<String,Object> params,@RequestParam("pager")Pager pager);

    @PostMapping("/key/PactGmio/getInfoStatus")
    JsonResult getInfoStatus(@RequestBody Map<String,Object> params);

    @PostMapping("/key/PactGmio/getCorId")
    JsonResult getCorId(@RequestBody Map<String,Object> params);


    @PostMapping("/key/PactGmio/getIntelligentRoom")
    JsonResult getIntelligentRoom(@RequestBody Map<String,Object> params);

    @PostMapping("/key/HouCaiWu/getHoulist")
    List<Map<String,Object>> getHoulist(@RequestBody Map<String,Object> params);

}
